

virtual int CharToItem( UINT nKey, UINT nIndex );
Возвращаемое значение
Возврат - 1 или - 2 ни для какого дальнейшего действия или неотрицательного номера, чтобы определить индекс элемента списка, чтобы выполнять заданное по умолчанию действие для нажатия клавиши. Заданный по умолчанию возврат реализации - 1.
Параметры
nKey
ANSI код символа пользователь печатал.
nIndex
Текущая позиция символа каретки списка.
Замечания
Эта функция вызвана рамкой, когда родительское окно списка получает WM_CHARTOITEM сообщение от списка. WM_CHARTOITEM сообщение послано списком, когда это получает WM_CHAR сообщение, но только, если список встречает все эти критерии:
Является владельцем - выводящимся списком. Не имеет LBS_HASSTRINGS стиля. Имеет по крайней мере один элемент.Вы никогда не должны вызвать эту функцию самостоятельно. Перегрузите эту функцию, чтобы обеспечить вашу собственную заказную обработку сообщений клавиатуры.
Пример
// CMyListBox - мой выведенный владельцем список, полученный из CListBox. Этот
// пример перемещает символ каретки по нажатию на клавишу
// по клавише вверх. Управление списка было создано со
// следующий кодом:
// pmyListBox->Create(
// WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
// LBS_SORT|LBS_MULTIPLESEL|LBS_OWNERDRAWVARIABLE|LBS_WANTKEYBOARDINPUT,
// CRect(10,10,200,200), pParentWnd, 1);
//
int CMyListBox::CharToItem(UINT nKey, UINT nIndex)
{
// На числовой клавише переместите символ каретки вверх на один элемент:
if (isdigit(nKey) && (nIndex > 0))
SetCaretIndex(nIndex-1);
// На алфавитной клавише, переместите символ каретки вниз один элемент.
else if (isalpha(nKey) && (nIndex < GetCount()))
SetCaretIndex(nIndex+1);
// Не выполните никакую заданную по умолчанию обработку.
return -1;
}

